package com.project.service.Imp;

import com.project.bean.UserBean;
import com.project.mapper.IUserMapper;
import com.project.service.IUserService;
import org.apache.ibatis.session.SqlSession;

import java.util.List;

public class UserService extends BaseService implements IUserService {
    @Override
    public List<UserBean> findAllUsers() {
        SqlSession session = this.getSession();
        IUserMapper mapper = session.getMapper(IUserMapper.class);
        List<UserBean> allUsers = mapper.findAllUsers();
        session.close();
        return allUsers;
    }

    @Override
    public boolean addUser(UserBean user) {
        SqlSession session = this.getSession();
        IUserMapper mapper = session.getMapper(IUserMapper.class);
        mapper.addUser(user);
        session.commit();
        session.close();
        return true;
    }

    @Override
    public void deleteUser(Integer userId) {
        SqlSession session = this.getSession();
        IUserMapper mapper = session.getMapper(IUserMapper.class);
        mapper.deleteUser(userId);
        session.commit();
        session.close();

    }

    @Override
    public UserBean findUserById(Integer userId) {
        SqlSession session = this.getSession();
        IUserMapper mapper = session.getMapper(IUserMapper.class);
        UserBean userById = mapper.findUserById(userId);
        session.close();
        return userById;
    }

    @Override
    public void updateUserGrade(Integer userId, String newGrade) {
        SqlSession session = this.getSession();
        IUserMapper mapper = session.getMapper(IUserMapper.class);
        mapper.updateUserGrade(userId,newGrade);
        session.commit();
        session.close();
    }

    @Override
    public void updatePwd(Integer id, String newPwd) {
        SqlSession session = this.getSession();
        IUserMapper mapper = session.getMapper(IUserMapper.class);
        mapper.updatePwd(id, newPwd);
        session.commit();
        session.close();
    }
}
